// 热门搜索的类型限制
export interface searchData {
    defaultKeyword: defaultKeyword
    defaultKeywords: defaultKeyword[]
    hotKeywordVOList: defaultKeyword[]
}

interface defaultKeyword {
    keyword: string,
    schemeUrl: string,
    highlight: number,
    hidden: number,
    type: number,
    algSort: boolean,
    extra: {
        resource: resource
        resourcesId: string
    }
}


interface resource {
    materialName: string,
    resourcesId: number,
    materialId: number
}

// 搜索列表
export interface searchList {
    categoryInfoList: categoryInfoList[],
    categoryL1List: categoryL1List[],
    directOrginQuery: string
    directlyList: directlyList[]
    fromSearch: number
    hasMore: boolean
    matchType: number
}

interface categoryInfoList {
    categoryId: number
    itemCount: number
}

interface categoryL1List {
    frontName: null
    id: number
    name: string
}

interface directlyList {
    id: string
    finalPriceInfoVO: {
        banner: {
            content: string
        }
        priceInfo: {
            counterPrice: string
            finalPrice: {
                prefix: string
                price: string
            }
        }
    }
    listPicUrl: string
    name: string
    primaryPicUrl: string
    preLogo: preLogo[]
    retailPrice: string
    sortOriginPrice: string
}

interface preLogo {
    logoUrl: string
    height: number
    width: number
}


// 详情页

export interface AllDetailsData {
    item: detailsData
}

export interface detailsData {
    id: number,
    listPicUrl: string,
    name: string,
    seoTitle: string,
    simpleDesc: string,
    primaryPicUrl: string,
    primarySkuId: number,
    retailPrice: number,
    counterPrice: number,
    sortOriginPrice: null,
    status: number,
    rank: number,
    soldOut: boolean,
    underShelf: boolean,
    updateTime: number,
    itemDetail: {
        detailHtml: string,
        picUrl1: string,
        picUrl2: string,
        picUrl3: string,
        picUrl4: string,
        picUrl5: string,
        videoInfo: {
            mp4VideoUrl: string,
            mp4VideoSize: string,
            webmVideoUrl: string,
            webmVideoSize: string
        }
    },
    skuList: object[],
    attrList: object[],
    skuMap: {
        4019062: {
            id: number,
            counterPrice: number,
            retailPrice: number,
            primarySku: boolean,
            sellVolume: number,
            noActivitySellVolume: number,
            valid: boolean,
            itemSkuSpecValueList: object[],
            preSellStatus: number,
            preSellPrice: number,
            preSellVolume: number,
            preSellDesc: null,
            purchaseAttribute: number,
            giftCardFlag: boolean,
            virtualFlag: boolean,
            limitedFlag: number,
            promId: number,
            preLimitFlag: number,
            limitPurchaseFlag: boolean,
            limitPurchaseCount: number,
            limitPointCount: number,
            appExclusiveSkuInfo: null,
            buttonType: number,
            limitPrice: null,
            selected: boolean,
            promValid: boolean,
            hdrkDetailVOList: void[],
            promotionDesc: string,
            itemTagList: void[],
            points: number,
            pointsPrice: number,
            pic: null,
            preemptionStatus: number,
            noSaleDesc: null,
            spmcBanner: {
                spmcDesc: string,
                spmcPrice: string,
                btnDesc: string,
                btnValue: string,
                userType: number,
                btnAction: number,
                spmcPrivilegeMess: null,
                spmcEconomizePrice: null,
                spmcTagDesc: null,
                spmcLinkUrl: null
            },
            appFreshmanBannerVO: null,
            confineType: number,
            isSatisfy: boolean,
            activityPrice: null,
            cnt: number,
            accessoryFlag: boolean,
            depositSkuVO: null,
            extraServiceFlag: number,
            extraServiceItemVOs: null,
            promBanner: null,
            promoTip: null,
            shoppingReward: {
                name: string,
                rewardDesc: string,
                rewardValue: string
            },
            skuTitle: string,
            presentUrl: null,
            priceDesc: null,
            buyTitle: null,
            calcPrice: number,
            desc: string,
            skuLimit: string,
            operationAttribute: number,
            canReturnReward: boolean,
            promoTips: null,
            couponShortNameList: null,
            itemDiscountDetail: {
                title: string,
                spmcFinalPriceDesc: string,
                spmcDiscountDesc: null,
                discountDetailList: object[],
                spmcExtDiscountList: null,
                tip: string,
                btnTitle: string,
                btnLinkUrl: string,
                btnType: number
            },
            spmcFinalPriceBannerVO: null,
            skuFreight: {
                title: string,
                freightInfo: string,
                vipFreightInfo: null,
                policyList: object[],
                type: number
            },
            proDiscount: null,
            versionForbidDesc: null,
            fullRefundPolicy: null,
            price: {
                finalPrice: null,
                counterPrice: string,
                basicPrice: string
            },
            banner: {
                status: number,
                preBanner: null,
                processBanner: {
                    title: string,
                    supplementText: null,
                    priceInfo: {
                        finalPrice: {
                            price:string | number
                        },
                        counterPrice: string,
                        basicPrice: string,
                        detailDepositInfo: null,
                        promType: number,
                        normalR1PromType: number,
                        normalR1Price: number,
                        prePromType: number,
                        showPrice: boolean,
                        inventory: number,
                        couponConflict: boolean,
                        redPackageConflict: boolean,
                        r1OnlyNewUser: boolean,
                        inTransitSku: null
                    },
                    timePrefix: string,
                    endTimeGap: number,
                    logoUrl: string,
                    iconUrl: null,
                    showTime: boolean,
                    bgColor: string,
                    priceBgColor: string,
                    logoJumpUrl: null,
                    proTagUrl: null,
                    textColor: string,
                    finalPriceTextColor: string
                },
                type: number
            },
            showPrice: boolean,
            pointTag: null,
            pointTagPrefix: null
        },
        4019324: {
            id: number,
            counterPrice: number,
            retailPrice: number,
            primarySku: boolean,
            sellVolume: number,
            noActivitySellVolume: number,
            valid: boolean,
            itemSkuSpecValueList: object[],
            preSellStatus: number,
            preSellPrice: number,
            preSellVolume: number,
            preSellDesc: null,
            purchaseAttribute: number,
            giftCardFlag: boolean,
            virtualFlag: boolean,
            limitedFlag: number,
            promId: number,
            preLimitFlag: number,
            limitPurchaseFlag: boolean,
            limitPurchaseCount: number,
            limitPointCount: number,
            appExclusiveSkuInfo: null,
            buttonType: number,
            limitPrice: null,
            selected: boolean,
            promValid: boolean,
            hdrkDetailVOList: void[],
            promotionDesc: string,
            itemTagList: void[],
            points: number,
            pointsPrice: number,
            pic: null,
            preemptionStatus: number,
            noSaleDesc: null,
            spmcBanner: {
                spmcDesc: string,
                spmcPrice: string,
                btnDesc: string,
                btnValue: string,
                userType: number,
                btnAction: number,
                spmcPrivilegeMess: null,
                spmcEconomizePrice: null,
                spmcTagDesc: null,
                spmcLinkUrl: null
            },
            appFreshmanBannerVO: null,
            confineType: number,
            isSatisfy: boolean,
            activityPrice: null,
            cnt: number,
            accessoryFlag: boolean,
            depositSkuVO: null,
            extraServiceFlag: number,
            extraServiceItemVOs: null,
            promBanner: null,
            promoTip: null,
            shoppingReward: {
                name: string,
                rewardDesc: string,
                rewardValue: string
            },
            skuTitle: string,
            presentUrl: null,
            priceDesc: null,
            buyTitle: null,
            calcPrice: number,
            desc: string,
            skuLimit: string,
            operationAttribute: number,
            canReturnReward: boolean,
            promoTips: null,
            couponShortNameList: null,
            itemDiscountDetail: {
                title: string,
                spmcFinalPriceDesc: string,
                spmcDiscountDesc: null,
                discountDetailList: object[],
                spmcExtDiscountList: null,
                tip: string,
                btnTitle: string,
                btnLinkUrl: string,
                btnType: number
            },
            spmcFinalPriceBannerVO: null,
            skuFreight: {
                title: string,
                freightInfo: string,
                vipFreightInfo: null,
                policyList: object[],
                type: number
            },
            proDiscount: null,
            versionForbidDesc: null,
            fullRefundPolicy: null,
            price: {
                finalPrice: {
                    price:string | number
                },
                counterPrice: string,
                basicPrice: string
            },
            banner: {
                status: number,
                preBanner: null,
                processBanner: {
                    title: string,
                    supplementText: null,
                    priceInfo: {
                        finalPrice: {
                            price:string | number
                        },
                        counterPrice: string,
                        basicPrice: string,
                        detailDepositInfo: null,
                        promType: number,
                        normalR1PromType: number,
                        normalR1Price: number,
                        prePromType: number,
                        showPrice: boolean,
                        inventory: number,
                        couponConflict: boolean,
                        redPackageConflict: boolean,
                        r1OnlyNewUser: boolean,
                        inTransitSku: null
                    },
                    timePrefix: string,
                    endTimeGap: number,
                    logoUrl: string,
                    iconUrl: null,
                    showTime: boolean,
                    bgColor: string,
                    priceBgColor: string,
                    logoJumpUrl: null,
                    proTagUrl: null,
                    textColor: string,
                    finalPriceTextColor: string
                },
                type: number
            },
            showPrice: boolean,
            pointTag: null,
            pointTagPrefix: null
        }
    },
    skuSpecList: object[],
    sellVolume: number,
    reportPicList: null,
    issueList: object[],
    unitPrice: null,
    tagList: void[],
    hdrkDetailVOList: void[],
    comments: object[],
    newItemFlag: boolean,
    primarySkuPreSellPrice: number,
    primarySkuPreSellStatus: number,
    pieceNum: number,
    pieceUnitDesc: string,
    colorNum: number,
    limitedFlag: number,
    promId: number,
    preLimitFlag: number,
    gradientPrice: null,
    productPlace: string,
    remark: null,
    flashPageLink: string,
    promotionDesc: string,
    specialPromTag: string,
    extraPrice: string,
    appExclusiveFlag: boolean,
    appExclusivePrice: null,
    promTag: null,
    tryOutEventReport: null,
    layawayList: void[],
    itemTagList: void[],
    isPreemption: number,
    preemptionStatus: number,
    couponShortNameList: null,
    buttonType: number,
    sloganTip: null,
    showTime: number,
    onSaleTime: number,
    characteristicList: object[],
    itemPromValid: boolean,
    autoOnsaleTime: number,
    autoOnsaleTimeLeft: number,
    displaySkuId: number,
    saleCenterDesc: null,
    presentUrl: null,
    saleCenterSkuId: number,
    saleCenterSkuSpec: null,
    topCommentVO: null,
    itemType: number,
    adBanners: pUrl[],
    points: number,
    showPoints: boolean,
    pointsPrice: number,
    valueReturnDesc: null,
    forbidExclusiveCal: boolean,
    commentCount: number,
    commentWithPicCount: number,
    freightInfo: string,
    itemLimit: string,
    itemSizeTableFlag: boolean,
    itemSizeTableDetailFlag: boolean,
    itemSizeTableList: null,
    freeTryVO: null,
    purchaseRate: null,
    jumpUrl: null,
    zcSearchFlag: boolean,
    featuredSeries: null,
    pointsStatus: number,
    sortFlag: number,
    spmcBanner: {
        spmcDesc: string,
        spmcPrice: string,
        btnDesc: string,
        btnValue: string,
        userType: number,
        btnAction: number,
        spmcPrivilegeMess: null,
        spmcEconomizePrice: null,
        spmcTagDesc: null,
        spmcLinkUrl: null
    },
    appFreshmanBannerVO: null,
    source: number,
    categoryList: object[],
    depositDetailVO: null,
    scenePicUrl: string,
    couponPrice: null,
    bonusBanner: null,
    couponConflict: boolean,
    extraServiceFlag: number,
    forbiddenBuy: boolean,
    forbidBuyDesc: null,
    bigPromotion: null,
    spmcOpenGiftItemDesc: null,
    discountDesc: null,
    subtractPriceDesc: null,
    goodCmtRate: string,
    showCommentEntrance: boolean,
    relatedItemCommentTag: null,
    rewardDesc: null,
    categoryL2Id: number,
    promLogo: null,
    listPromBanner: null,
    detailPromBanner: null,
    promoTip: null,
    rewardShareFlag: boolean,
    shoppingReward: {
        name: string,
        rewardDesc: string,
        rewardValue: string
    },
    shoppingRewardRule: {
        title: string,
        ruleList: object[]
    },
    promDesc: null,
    promoTips: null,
    picMode: number,
    extra: null,
    recommendReason: string[],
    shieldSpecialChannel: boolean,
    itemDiscountDetail: {
        title: string,
        spmcFinalPriceDesc: string,
        spmcDiscountDesc: null,
        discountDetailList: object[],
        spmcExtDiscountList: null,
        tip: string,
        btnTitle: string,
        btnLinkUrl: string,
        btnType: number
    },
    spmcFinalPriceBannerVO: null,
    buyTitle: null,
    noticeText: null,
    skuFreight: {
        title: string,
        freightInfo: string,
        vipFreightInfo: null,
        policyList: object[],
        type: number
    },
    proDiscount: null,
    purchaseMethodVO: null,
    fullRefundPolicy: null,
    freeTryId: number,
    zoomTransPicV2Url: null,
    monthlySavingCard: null,
    welfareCardVO: null,
    brandInfo: {
        brandId: number,
        title: string,
        subTitle: null,
        desc: string,
        brandType: number,
        type: number,
        picUrl: string,
        ownType: number,
        kolRecommendVO: null,
        merchantId: null,
        brandTargetUrl: null,
        qualificationText: null,
        qualificationTarget: null
    },
    simpleBrandInfo: {
        title: string,
        ownType: number,
        logoUrl: string,
        aspectRatio: number
    },
    countryInfo: null,
    finalPriceInfoVO: null,
    topLogo: {
        logoUrl:string
    },
    preLogo: void[],
    price: {
        finalPrice: null,
        counterPrice: string,
        basicPrice: string
    },
    banner: {
        status: number,
        preBanner: null,
        processBanner: {
            title: string,
            supplementText: null,
            priceInfo: {
                finalPrice: {price:string | number},
                counterPrice: string,
                basicPrice: string,
                detailDepositInfo: null,
                promType: number,
                normalR1PromType: number,
                normalR1Price: number,
                prePromType: number,
                showPrice: boolean,
                inventory: number,
                couponConflict: boolean,
                redPackageConflict: boolean,
                r1OnlyNewUser: boolean,
                inTransitSku: null
            },
            timePrefix: string,
            endTimeGap: number,
            logoUrl: string,
            iconUrl: null,
            showTime: boolean,
            bgColor: string,
            priceBgColor: string,
            logoJumpUrl: null,
            proTagUrl: null,
            textColor: string,
            finalPriceTextColor: string
        },
        type: number
    },
    showPrice: boolean,
    pointTag: null,
    pointTagExtra: null,
    pointTagPrefix: null,
    zc: boolean,
    wapSchemeUrl: null,
    auctionInfoVO: null,
    spmcFinalPriceCalcResultBean: null,
    listProPriceInfoDTO: null
}

export interface pUrl{
    picUrl:string
}